Перейти к основному содержимому

14.7 Настройка MPLS SR

14.7.1 Обзор

Введение в функциональность

Segment Routing (SR) использует механизм выбора исходного пути для инкапсуляции SID (Segment Identifier), который должен быть заранее выделен узлом на исходном узле. Когда сообщение проходит через SR-узел, узел перенаправляет сообщение в соответствии с SID этого сообщения. За исключением исходного узла, другим узлам не нужно поддерживать состояние пути. MPLS SR относится к использованию SR в MPLS-сети для пересылки сообщений как SID.

Описание принципа работы

Для того чтобы перенаправить сообщение через SR LSP, необходимо выполнить следующие задачи:

  • Назначение меток. Для планирования информации о метках для каждого узла и связи на пути пересылки сообщений могут использоваться статическая конфигурация сегмента или динамическое выделение SID.
  • Создание записи в таблице пересылки меток. Устройство в домене сегментной маршрутизации, состоящее из устройств, работающих с MPLS SR, формирует локальные записи в таблице пересылки меток в соответствии с выделенной информацией о метках.
  • Создание SR LSP. SR LSP может быть настроен вручную или создан динамически через контроллер.
  • Связь туннеля SR с SR LSP. Это необходимо для того, чтобы SR LSP мог использоваться для пересылки сообщений.

После выполнения этих шагов, когда исходный узел получает сообщение от пользовательской сети, он инкапсулирует информацию о метке на пути, через который проходит сообщение, и перенаправляет сообщение на конечный узел через SR LSP. После получения сообщения через SR LSP, конечный узел удаляет метку из сообщения и пересылает его в соответствии с маршрутом назначения, найденным в таблице маршрутизации.

14.7.2 Настройка

Статическая настройка MPLS SR

Рисунок 14-10: Топология MPLS LSP

Рисунок 14-10: Топология MPLS LSP

Шаг 1: Вход в режим конфигурации

Switch# configure terminal

Шаг 2: Вход в режим конфигурации интерфейса и настройка атрибутов интерфейса

Настройка интерфейса на switch1:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

Настройка интерфейса на switch2:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

Настройка интерфейса на switch3:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 34.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 5.5.5.5/32
Switch(config-if)# exit

Шаг 3: Настройка статического маршрута

Настройка статического маршрута на switch2:

Switch(config)# ip route 5.5.5.5/32 23.1.1.3

Настройка статического маршрута и статического ARP на switch3:

Switch(config)# arp 34.1.1.4 0000.0000.000a
Switch(config)# ip route 10.10.10.10/32 34.1.1.4

Шаг 4: Настройка сегментов статически

Настройка Adj сегмента на switch1:

Switch(config)# static-sr-mpls adjacency adj1 in-label 20 nexthop 12.1.1.2

Настройка Prefix сегмента на switch2:

Switch(config)# static-sr-mpls prefix prefix1 destination 5.5.5.5/32 in-label 30 nexthop 23.1.1.3 out-label 30

Настройка Prefix сегмента на switch3:

Switch(config)# static-sr-mpls prefix prefix1 destination 5.5.5.5/32 in-label 30

Шаг 5: Настройка SR LSP

Настройка SR LSP на switch1:

Switch(config)# static-sr-mpls lsp lsp1 out-label 20 30

Шаг 6: Настройка SR tunnel, привязка SR LSP к туннелю и отображение маршрута на SR tunnel

Настройка SR tunnel на switch1:

Switch(config)# static-sr-mpls tunnel tun1 non-aps
Switch(config-sr-tunnel)# primary lsp1
Switch(config-sr-tunnel)# map-route 10.10.10.10/32
Switch(config-sr-tunnel)# exit

Шаг 7: Проверка

Отображение Adj сегмента на switch1:

Switch# show mpls sr-adj 
sr-adj id inlabel nexthop lsp_list
adj1 0 20 12.1.1.2 lsp1

Отображение Prefix сегмента на switch2:

Switch# show mpls sr-prefix 
sr-prefix id inlabel outlabel nexthop lsp_list
prefix1 0 30 30 23.1.1.3

Отображение Prefix сегмента на switch3:

Switch# show mpls sr-prefix 
sr-prefix id inlabel outlabel nexthop lsp_list
prefix1 0 30 1048576 0.0.0.0

Отображение SR LSP на switch1:

Switch# show mpls sr-lsp 
sr-lsp id tunid instl nexthop tunnel adj prefix outlabel
lsp1 2 2 1 12.1.1.2 tun1 adj1 - 20 30

Отображение SR tunnel на switch1:

Switch# show mpls sr-tunnel 
sr-tunnel id type wlsp plsp slsp map-route
tun1 3 non lsp1 - - 10.10.10.10/32

Отображение отображенных маршрутов на switch1:

Switch# show mpls sr-mapped-routes 
Mapped-route SR Tunnel name
10.10.10.10/32 tun1

Отправка пакетов с IP-адресом назначения 10.10.10.10 на eth-0-1 на switch1.

Захват пакетов, полученных на eth-0-1 на switch1:

07:45:48.915852 00:00:00:00:00:02 (oui Ethernet) > 22:92:11:2e:47:00 (oui Unknown), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 10, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 2292 112e 4700 0000 0000 0002 0800 4500
0x0010: 0032 0000 0000 0a11 9aa4 0101 0103 0a0a
0x0020: 0a0a aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa

Захват пакетов, отправленных на eth-0-9 на switch1:

07:49:41.883130 22:92:11:2e:47:00 (oui Unknown) > 2c:ad:5e:70:52:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 30, exp 0, [S], ttl 8)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 2cad 5e70 5200 2292 112e 4700 8847 0001
0x0010: e108 4500 0032 0000 0000 0911 9ba4 0101
0x0020: 0103 0a0a 0a0a aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa

Захват пакетов, отправленных на eth-0-17 на switch2:

07:51:36.664252 2c:ad:5e:70:52:00 (oui Unknown) > 4e:1d:de:29:f9:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 30, exp 0, [S], ttl 7)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 4e1d de29 f900 2cad 5e70 5200 8847 0001
0x0010: e107 4500 0032 0000 0000 0911 9ba4 0101
0x0020: 0103 0a0a 0a0a aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa

Захват пакетов, отправленных на eth-0-9 на switch3:

07:55:33.886746 4e:1d:de:29:f9:00 (oui Unknown) > 00:00:00:00:00:0a (oui Ethernet), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 6, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 0000 0000 000a 4e1d de29 f900 0800 4500
0x0010: 0032 0000 0000 0611 9ea4 0101 0103 0a0a
0x0020: 0a0a aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa

Динамическая настройка SR

Рисунок 14-11: Топология MPLS LSP

Рисунок 14-11: Топология MPLS LSP

Пример ниже описывает, как настроить динамический IS-IS SR.

Шаг 1: Вход в режим конфигурации

Switch# configure terminal

Шаг 2: Вход в режим конфигурации интерфейса и настройка атрибутов интерфейса

Настройка интерфейсов на switch1:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.1.1.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# ip router isis
Switch(config-if)# exit

Настройка интерфейсов на switch2:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# ip router isis
Switch(config-if)# exit

Настройка интерфейсов на switch3:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 34.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 3.3.3.3/32
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# arp 34.1.1.4 0000.0000.000a
Switch(config)# ip route 5.5.5.5/32 34.1.1.4

Шаг 3: Настройка маршрутизатора IS-IS и включение сегментированного маршрута

Настройка маршрутизатора IS-IS на switch1:

Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 16000 16999
Switch(config)# net 49.0000.0000.0001.00
Switch(config)# exit

Настройка маршрутизатора IS-IS на switch2:

Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 17000 17999
Switch(config)# net 49.0000.0000.0002.00
Switch(config)# exit

Настройка маршрутизатора IS-IS на switch3:

Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 18000 18999
Switch(config)# net 49.0000.0000.0003.00
Switch(config)# exit

Шаг 4: Настройка префикса SID

Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 10
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 20
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 30
Switch(config-if)# exit

Шаг 5: Настройка SR LSP

Настройка SR LSP на switch1:

Switch(config)# static-sr-mpls lsp lsp1 out-label 16030

Шаг 6: Настройка SR tunnel, привязка SR LSP к туннелю и сопоставление маршрута с SR tunnel

Настройка SR tunnel на switch1:

Switch(config)# static-sr-mpls tunnel tun1 non-aps
Switch(config-sr-tunnel)# primary lsp1
Switch(config-sr-tunnel)# map-route 5.5.5.5/32
Switch(config-sr-tunnel)# exit

Шаг 7: Проверка

Отображение маршрута IS-IS на switch1:

Switch# show ip isis route 

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric

Area (null):
Destination Metric Next-Hop Interface Tag Sid Nflag Eflag Chg
C 1.1.1.1/32 10 -- loopback0 0 10 Y N N
L1 2.2.2.2/32 20 12.1.1.2 eth-0-9 0 20 Y N N
L1 3.3.3.3/32 30 12.1.1.2 eth-0-9 0 30 Y N N
C 12.1.1.0/24 10 -- eth-0-9 0 -- -- -- --
L1 23.1.1.0/24 20 12.1.1.2 eth-0-9 0 -- -- -- --

Отображение префикса сегмента на switch1:

Switch# show mpls sr-prefix 
sr-prefix destination inlabel outlabel nexthop lsp_list
- 2.2.2.2/32 16020 17020 12.1.1.2 -
- 3.3.3.3/32 16030 17030 12.1.1.2 lsp1

Отображение записи в MPLS ILM на switch1:

Switch# show mpls ilm-database 
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
U - unknown ILM

Code FEC I/O Label Nexthop Out-Intf
I> 0.0.0.0/0 16010/- 0.0.0.0 N/A
I> 0.0.0.0/0 16020/17020 12.1.1.2 eth-0-9
I> 0.0.0.0/0 16030/17030 12.1.1.2 eth-0-9

Отображение маршрута IS-IS на switch2:

Switch# show ip isis route 

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric

Area (null):
Destination Metric Next-Hop Interface Tag Sid Nflag Eflag Chg
L1 1.1.1.1/32 20 12.1.1.1 eth-0-9 0 10 Y N N
C 2.2.2.2/32 10 -- loopback0 0 20 Y N N
L1 3.3.3.3/32 20 23.1.1.3 eth-0-17 0 30 Y N N
C 12.1.1.0/24 10 -- eth-0-9 0 -- -- -- --
C 23.1.1.0/24 10 -- eth-0-17 0 -- -- -- --

Отображение префикса сегмента на switch2:

Switch# show mpls sr-prefix 
sr-prefix destination inlabel outlabel nexthop lsp_list
- 1.1.1.1/32 17010 16010 12.1.1.1 -
- 3.3.3.3/32 17030 18030 23.1.1.3 -

Отображение записи в MPLS ILM на switch2:

Switch# show mpls ilm-database 
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
U - unknown ILM

Code FEC I/O Label Nexthop Out-Intf
I> 0.0.0.0/0 17010/16010 12.1.1.1 eth-0-9
I> 0.0.0.0/0 17020/- 0.0.0.0 N/A
I> 0.0.0.0/0 17030/18030 23.1.1.3 eth-0-17

Отображение маршрута IS-IS на switch3:

Switch# show ip isis route 

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric

Area (null):
Destination Metric Next-Hop Interface Tag Sid Nflag Eflag Chg
L1 1.1.1.1/32 30 23.1.1.2 eth-0-17 0 10 Y N N
L1 2.2.2.2/32 20 23.1.1.2 eth-0-17 0 20 Y N N
C 3.3.3.3/32 10 -- loopback0 0 30 Y N Y
L1 12.1.1.0/24 20 23.1.1.2 eth-0-17 0 -- -- -- --
C 23.1.1.0/24 10 -- eth-0-17 0 -- -- -- --

Отображение префикса сегмента на switch3:

Switch# show mpls sr-prefix 
sr-prefix destination inlabel outlabel nexthop lsp_list
- 1.1.1.1/32 18010 17010 23.1.1.2 -
- 2.2.2.2/32 18020 17020 23.1.1.2 -

Отображение записи в MPLS ILM на switch3:

Switch# show mpls ilm-database 
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
U - unknown ILM

Code FEC I/O Label Nexthop Out-Intf
I> 0.0.0.0/0 18010/17010 23.1.1.2 eth-0-17
I> 0.0.0.0/0 18020/17020 23.1.1.2 eth-0-17
I> 0.0.0.0/0 18030/- 0.0.0.0 N/A

Отображение sr lsp на switch1:

Switch# show mpls sr-lsp 
b - segment bind, i - install
sr-lsp id tunid b i nexthop tunnel adj prefix isis-prefix outlabel
lsp1 1 1 1 1 12.1.1.2 tun1 - - 3.3.3.3/32 16030

Отображение sr tunnel на switch1:

Switch# show mpls sr-tunnel 
wlsp - working lsp, plsp - protection lsp, slsp - select lsp
sr-tunnel id type wlsp plsp slsp map-route
tun1 2 non lsp1 - - 5.5.5.5/32

Отображение map-route на switch1:

Switch# show mpls sr-mapped-routes 
Mapped-route is_install SR-Tunnel-name
5.5.5.5/32 yes tun1

Отправьте пакеты с целевым IP-адресом 5.5.5.5 на интерфейс eth-0-1 на маршрутизаторе switch1.

Захват пакетов, полученных на интерфейсе eth-0-1 на маршрутизаторе switch1:

07:09:42.985391 00:00:00:00:00:02 (oui Ethernet) > 22:92:11:2e:47:00 (oui Unknown), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 10, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 2292 112e 4700 0000 0000 0002 0800 4500
0x0010: 0032 0000 0000 0a11 a4ae 0101 0103 0505
0x0020: 0505 aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa

Захват пакетов, отправленных на интерфейс eth-0-9 на маршрутизаторе switch1:

07:10:39.037569 22:92:11:2e:47:00 (oui Unknown) > 2c:ad:5e:70:52:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 17030, exp 0, [S], ttl 9)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 2cad 5e70 5200 2292 112e 4700 8847 0428
0x0010: 6109 4500 0032 0000 0000 0911 a5ae 0101
0x0020: 0103 0505 0505 aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa

Захват пакетов, отправленных на интерфейс eth-0-17 на маршрутизаторе switch2:

07:11:31.922016 2c:ad:5e:70:52:00 (oui Unknown) > 4e:1d:de:29:f9:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 18030, exp 0, [S], ttl 8)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 4e1d de29 f900 2cad 5e70 5200 8847 0466
0x0010: e108 4500 0032 0000 0000 0911 a5ae 0101
0x0020: 0103 0505 0505 aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa

Захват пакетов, отправленных на интерфейс eth-0-9 на маршрутизаторе switch3:

07:23:09.891084 4e:1d:de:29:f9:00 (oui Unknown) > 00:00:00:00:00:0a (oui Ethernet), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 7, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 0000 0000 000a 4e1d de29 f900 0800 4500
0x0010: 0032 0000 0000 0711 a7ae 0101 0103 0505
0x0020: 0505 aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa